package com.fsd.experiment4;

import android.app.Service;
import android.content.Intent;
import android.os.Binder;
import android.os.IBinder;
import android.widget.Toast;

public class BindService extends Service{
    private int count = 0;
    private boolean quit = false;
    // 定义onBinder方法所返回的对象
    private MyBinder binder = new MyBinder();
    // 通过继承Binder来实现IBinder类
    public class MyBinder extends Binder{
        public int getCount(){
                // 获取Service的运行状态：count
                return count;
        }
    }
    // 必须实现的onBind()方法
    @Override
    public IBinder onBind(Intent intent) {
        System.out.println("Service 被绑定");
        Toast.makeText(BindService.this
                , "Service 被绑定"
                , Toast.LENGTH_SHORT).show();
        return binder;
    }

    // Service被创建时回调该方法。
    @Override
    public void onCreate(){
        super.onCreate();
        System.out.println("Service 被创建");
        Toast.makeText(BindService.this
                , "Service 被创建"
                , Toast.LENGTH_SHORT).show();
        // 启动一条线程、动态地修改count状态值
        new Thread(){
            @Override
            public void run(){
                while (!quit){
                    try{
                        Thread.sleep(1000);
                    }
                    catch (InterruptedException e){}
                    count++;
                }
            }
        }.start();
    }
    // Service被断开连接时回调该方法

    @Override
    public boolean onUnbind(Intent intent) {
        System.out.println("Service 被解绑");
        Toast.makeText(BindService.this
                , "Service 被解绑"
                , Toast.LENGTH_SHORT).show();
        return true;
    }
    // Service被关闭之前回调。


    @Override
    public void onDestroy() {
        super.onDestroy();
        this.quit = true;
        System.out.println("Service 被销毁");
        Toast.makeText(BindService.this
                , "Service 被销毁"
                , Toast.LENGTH_SHORT).show();
    }
}

